Logarithmic converters are devices used to implement logarithmic functions and are most commonly found in items such as hand-held calculators and spread sheet software programs. Logarithmic functions, or log functions, belong to a class of mathematical functions called transcendental functions which are important in wide variety applications such as data communications, control systems, chemical processes, and computer simulation. A log function is abbreviated with the following mathematical equation: y=log.sub.b (x). In this equation, x represents an input value which may be any number greater than or equal to zero; b represents a base number system; and y represents a logarithm value, or log value, which corresponds to the input value x.
Inverse-log converters are devices used to implement inverse-logarithmic, or inverse-log, functions. Essentially, an inverse-log function is the reverse of a log function. What is meant by "reverse" is explained in the following discussion. A log function converts an input value, x, which is in a domain of input value into a definite log value which is in a range of log values. Basically, the log function establishes a one-to-one correspondence between input values in the domain and log values in the range. This correspondence is represented symbolically by x.fwdarw.y. An inverse-log function establishes a reverse correspondence between log values and input values which is represented by y.fwdarw.x. An inverse-log function is abbreviated with either of the following equivalent mathematical equations: y=log.sub.b.sup.-1 (x) or y=b.sup.x. In these equations, x represents an input value; b represents a base number system; and y represents an inverse-log value which corresponds to the input value x and may be any number greater than or equal to zero. Like log functions, inverse-log functions are important in a wide variety applications.
Two techniques of computing log and inverse-log values are commonly used today. Both techniques are analogously used to compute either log or inverse-log values; thus, for the sake of brevity, the following discussion will focus on using the techniques to compute log values, with the understanding that the techniques may be used in a like manner to compute inverse-log values.
The first technique involves storing a corresponding log value in a look-up table for every possible input value. This approach allows a log value to be computed relatively quickly and is practical for applications requiring limited precision and having input values within a small domain. However, in many applications this technique is impractical because it requires too great a memory space to store the look-up table. For example, in a digital system using an IEEE standard 32-bit floating point number, which has a 23-bit mantissa, such a look-up table would be required to store 2.sup.23 log values--one for every possible mantissa value. A computer memory for storing this number of log values would be prohibitively expensive, if not impossible, to build.
The second technique of computing log values involves computing a power series to approximate a log function. An example of a power series which approximates a log function is given as: EQU y=Log(1+x)=x-x.sup.2 /2+x.sup.3 /3-x.sup.4 /4+ (1)
In this example, the log function is a specific type of log function known as a natural logarithm, which is widely used in science and engineering applications. The variables in Equation 1 are defined as follows: y represents a log value, and x represents an input value in the domain -1.ltoreq.x&lt;1. Although the technique of using a power series to approximate a log function allows a log value to be computed with a high degree of precision, it requires a large number of computer operations and therefore requires a relatively long period of time to execute. In other words, this technique is generally slow and negatively affects the throughput of a computer.
In summary, there is a need for a converter which can perform either a log or an inverse-log function quickly, thus allowing a computer to operate with greater throughput. Such a converter should also reduce the amount of memory space required to perform the conversions, and it should produce log or inverse-log values which have a high degree of precision.